<?php
 include_once $_SERVER['DOCUMENT_ROOT'].'/Par-Ideal/PROJETO/src/bean/Usuario.php';
  include_once $_SERVER['DOCUMENT_ROOT'].'/Par-Ideal/PROJETO/src/bean/Cliente.php';
  include_once $_SERVER['DOCUMENT_ROOT'].'/Par-Ideal/PROJETO/src/Dao/ClienteDao.php';
  include_once $_SERVER['DOCUMENT_ROOT'].'/Par-Ideal/PROJETO/src/bean/Funcionario.php';
  include_once $_SERVER['DOCUMENT_ROOT'].'/Par-Ideal/PROJETO/src/Dao/FuncionarioDao.php';

  class UsuarioDao{
	
  	
  	
  	public function altualizarEmail(Cliente $cliente){
  		$conexao = Conexao::Conecta();
  		$sql= "update usuario set login = ? where id_usuario = ?";
  		if (!($stmt = $conexao->prepare($sql))) {
  			echo "Falha no stmt(UsuarioDao.altualizarEmail): (" . $conexao->errorCode . ") ";
  			 print_r($stmt->errorInfo());
		}
		
		$stmt->bindParam("1", $cliente->email);	
		$stmt->bindParam("2", $cliente->id);
		if (!$stmt->execute()) {
   			 echo "Erro ao executar:(UsuarioDao.altualizarEmail) (" . $conexao->errorCode() . ") ";
   			  print_r($stmt->errorInfo());
		}
				
		$stmt = null;
		$conexao = null;
				
		
  	}
  	
	public function inserir(Usuario $usuario){
		$conexao = Conexao::Conecta();

		
		$sql= "insert into usuario ( id_usuario,login,senha,nivel_acesso)
			values (?,?,?,?);";
		
		if (!($stmt = $conexao->prepare($sql))) {
  			echo "Falha no stmt(UsuarioDao.inserir): (" . $conexao->errorCode . ") ";
  			 print_r($stmt->errorInfo());
		}
		$senha = sha1($_POST['senha']);
		$stmt->bindParam("1", $usuario->pessoa->id);	
		$stmt->bindParam("2", $usuario->login);
		$stmt->bindParam("3", $senha);	
		$stmt->bindParam("4", $usuario->nivelAcesso);				
				
		
		
		if (!$stmt->execute()) {
   			 echo "Erro ao executar:(UsuarioDao.inserir) (" . $conexao->errorCode() . ") ";
   			  print_r($stmt->errorInfo());
		}
				
		$stmt = null;
		$conexao = null;
				
	}	

	public function validaLoginSenha(Usuario $usuario){
		$conexao = Conexao::Conecta();

		
		$sql= "select * from usuario where login='".$usuario->getLogin()."' and senha='".sha1($usuario->getSenha())."'";
	echo $sql;
	
		$consulta = $conexao->query($sql);			
		
		while ($linha = $consulta->fetch(PDO::FETCH_ASSOC)) {			
			
			$usuario->setLogin($linha['login']);
			$usuario->setNivelAcesso($linha['nivel_acesso']);
			$usuario->setSenha($linha['senha']);
			if($usuario->getNivelAcesso() == "2"){
				$clienteDao = new ClienteDao();
				$usuario->setPessoa($clienteDao->buscarById($linha['id_usuario']));
			}else{
				$funcionarioDao = new FuncionarioDao();
				$usuario->setPessoa($funcionarioDao->buscarById($linha['id_usuario']));
			}
			
			
		}
		
		$stmt = null;
		$conexao = null;
		
		return $usuario;
	}
	
  	
  	public function inserirFuncionario(Usuario $usuario){
		$conexao = Conexao::Conecta();

		
		$sql= "insert into usuario ( id_usuario,login,senha,nivel_acesso)
			values (0,?,?,?);";
		
		if (!($stmt = $conexao->prepare($sql))) {
  			echo "Falha no stmt(UsuarioDao.inserir): (" . $conexao->errorCode . ") ";
  			 print_r($stmt->errorInfo());
		}
		$senha = sha1($_POST['senha']);
		$stmt->bindParam("1", $usuario->login);
		$stmt->bindParam("2", $senha);	
		$stmt->bindParam("3", $usuario->nivelAcesso);				
				
		
		
		if (!$stmt->execute()) {
   			 echo "Erro ao executar:(UsuarioDao.inserir) (" . $conexao->errorCode() . ") ";
   			  print_r($stmt->errorInfo());
		}
				
		$stmt = null;
		$conexao = null;
				
	}
}
?>